package com.demo2do.fms.admin.entity.export.business;

import java.math.BigDecimal;
import java.util.Date;

import com.demo2do.fms.entity.business.shipment.DispatchOrder;
import com.demo2do.fms.entity.business.shipment.TransportCost;
import com.demo2do.fms.entity.data.business.LoadPlace;

/**
 * 每条派车单信息
 * 
 * @author Ark
 *
 */
public class ExpenseSheetItem {

    /** 编号 */
    private int num;
    
    /** 起点 */
    private String startAddr;
    
    /** 终点 */
    private String endAddr;
    
    /** 派车单编号 */
    private String code;
    
    /** 计划出发 */
    private Date leavingTime;
    
    /** 车型*数量 */
    private String carSum;
    
    /** 重车公里数 */
    private BigDecimal fullLoadDistance;
    
    /** 空车公里数 */
    private BigDecimal emptyLoadDistance;
    
    /** 路费 */
    private BigDecimal roadFee;
    
    /** 油费 */
    private BigDecimal totalOilFeeReimbursed;
    
    /** 其他费用 */
    private BigDecimal otherFee;
    
    /**
     * The default constructor
     */
    public ExpenseSheetItem() {
        
    }
    
    /**
     * @param num
     * @param dispatchOrder
     * @param transportCost
     * @param startAddr
     * @param endAddr
     * @param carSum
     * @param otherFee
     */
    public ExpenseSheetItem(int num, DispatchOrder dispatchOrder,
                            TransportCost transportCost, LoadPlace startAddr,
                            LoadPlace endAddr, String carSum,
                            BigDecimal otherFee) {
        this.num = num;
        this.startAddr = startAddr.getName();
        this.endAddr = endAddr.getName();
        this.code = dispatchOrder.getCode();
        this.leavingTime = dispatchOrder.getLeavingTime();
        this.carSum = carSum;
        this.fullLoadDistance = transportCost.getFullLoadDistance();
        this.emptyLoadDistance = transportCost.getEmptyLoadDistance();
        this.roadFee = transportCost.getRoadFee();
        this.totalOilFeeReimbursed = transportCost.getTotalOilFeeReimbursed();
        this.otherFee = otherFee;
    }

    /**
     * @return the num
     */
    public int getNum() {
        return num;
    }

    /**
     * @return the startAddr
     */
    public String getStartAddr() {
        return startAddr;
    }

    /**
     * @return the endAddr
     */
    public String getEndAddr() {
        return endAddr;
    }

    /**
     * @return the code
     */
    public String getCode() {
        return code;
    }

    /**
     * @return the leavingTime
     */
    public Date getLeavingTime() {
        return leavingTime;
    }

    /**
     * @return the carSum
     */
    public String getCarSum() {
        return carSum;
    }

    /**
     * @return the fullLoadDistance
     */
    public BigDecimal getFullLoadDistance() {
        return fullLoadDistance;
    }

    /**
     * @return the emptyLoadDistance
     */
    public BigDecimal getEmptyLoadDistance() {
        return emptyLoadDistance;
    }

    /**
     * @return the roadFee
     */
    public BigDecimal getRoadFee() {
        return roadFee;
    }

    /**
     * @return the totalOilFeeReimbursed
     */
    public BigDecimal getTotalOilFeeReimbursed() {
        return totalOilFeeReimbursed;
    }

    /**
     * @return the otherFee
     */
    public BigDecimal getOtherFee() {
        return otherFee;
    }

    /**
     * @param num the num to set
     */
    public void setNum(int num) {
        this.num = num;
    }

    /**
     * @param startAddr the startAddr to set
     */
    public void setStartAddr(String startAddr) {
        this.startAddr = startAddr;
    }

    /**
     * @param endAddr the endAddr to set
     */
    public void setEndAddr(String endAddr) {
        this.endAddr = endAddr;
    }

    /**
     * @param code the code to set
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * @param leavingTime the leavingTime to set
     */
    public void setLeavingTime(Date leavingTime) {
        this.leavingTime = leavingTime;
    }

    /**
     * @param carSum the carSum to set
     */
    public void setCarSum(String carSum) {
        this.carSum = carSum;
    }

    /**
     * @param fullLoadDistance the fullLoadDistance to set
     */
    public void setFullLoadDistance(BigDecimal fullLoadDistance) {
        this.fullLoadDistance = fullLoadDistance;
    }

    /**
     * @param emptyLoadDistance the emptyLoadDistance to set
     */
    public void setEmptyLoadDistance(BigDecimal emptyLoadDistance) {
        this.emptyLoadDistance = emptyLoadDistance;
    }

    /**
     * @param roadFee the roadFee to set
     */
    public void setRoadFee(BigDecimal roadFee) {
        this.roadFee = roadFee;
    }

    /**
     * @param totalOilFeeReimbursed the totalOilFeeReimbursed to set
     */
    public void setTotalOilFeeReimbursed(BigDecimal totalOilFeeReimbursed) {
        this.totalOilFeeReimbursed = totalOilFeeReimbursed;
    }

    /**
     * @param otherFee the otherFee to set
     */
    public void setOtherFee(BigDecimal otherFee) {
        this.otherFee = otherFee;
    }
    
}